package com.qi;

import java.util.Arrays;

/**
 * 选择排序
 * 选择排序有一个缺点，就是它的不稳定性，当数列中包含多个值相等的元素时，选择排序有可能会打乱他们原有顺序
 * <p>
 * 选择排序无论数组的有序程度如何，元素交换次数都是n-1次
 * <p>
 * 当数组中的大部分元素有序时，冒泡排序的效率是更高的
 */
public class XuanZePaiXu {

    public static void selectionSort(int[] array) {

        for (int i = 0; i < array.length - 1; i++) {
            int minIndex = i;
            for (int j = i + 1; j < array.length; j++) {
                if (array[minIndex] > array[j]) {
                    minIndex = j;
                }
            }

            if (i != minIndex) {
                int temp = array[minIndex];
                array[minIndex] = array[i];
                array[i] = temp;
            }

        }

    }

    public static void main(String[] args) {
        int[] array = new int[]{4, 5, 6, 3, 2, 1};
        selectionSort(array);
        System.out.println(Arrays.toString(array));
    }

}
